﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlServerCe;

namespace ProjectoPV_ESW.Account.DiaEscolar
{
    /// <summary>
    /// Classe desenvolvida por Mário Pereira
    /// </summary>
    public partial class DiaEscolarVerDadosForm : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["DataDiaDiaEscolar"] == null)
            {
                Response.Redirect("DiaEscolarSeleccionarDiaForm.aspx");
            }
            dataEmQuestao = (DateTime)Session["DataDiaDiaEscolar"];
            
            // 1º Abrir dia em questão. Se não houver dia em questão, criar DiaEscolar.
            // 2º Butão adicionar Evento e butão vêr/Editar Ementa / criar Ementa.
            
            string selectDiaEscolarsqlstring = "SELECT COUNT(*) FROM DiaEscolar WHERE Dia=@dia";
            string connString = ConfigurationManager.ConnectionStrings["JardimEntitiesString"].ConnectionString;
            SqlCeConnection conn = new SqlCeConnection(connString);
            SqlCeCommand commandCountDia = new SqlCeCommand(selectDiaEscolarsqlstring, conn);

            commandCountDia.Parameters.AddWithValue("@dia", dataEmQuestao);
            int diaExistente = 0;
            try
            {
                conn.Open();
                diaExistente = (int)commandCountDia.ExecuteScalar();
            }
            catch (Exception exc)
            {
                LabelErr.Text = exc.Message + " - " + exc.Source;
            }
            finally
            {
                conn.Close();
            }

            if (diaExistente == 0)
            {
                //dia não existente, tem que se criar dia;
                string insertDiaEscolarsqlstring = "INSERT INTO DiaEscolar(Dia) VALUES (@dia)";
                SqlCeCommand commandInsertDia = new SqlCeCommand(insertDiaEscolarsqlstring, conn);
                commandInsertDia.Parameters.AddWithValue("@dia",dataEmQuestao);
                try
                {
                    conn.Open();
                    commandInsertDia.ExecuteNonQuery();
                }
                catch (Exception exc)
                {
                    LabelErr.Text = exc.Message + " - " + exc.Source;
                }
                finally
                {
                    conn.Close();
                }
                diaNovo = true;
            }
            //Tem que se gravar o id do diaEscolar e a data para a sessão
            string selectDiaEscolarSqlString2 = "SELECT DiaEscolarId FROM DiaEscolar WHERE Dia=@dia";
            SqlCeCommand commandselectdia2 = new SqlCeCommand(selectDiaEscolarSqlString2, conn);
            commandselectdia2.Parameters.AddWithValue("@dia", dataEmQuestao);
            SqlCeDataReader reader;
            try
            {
                conn.Open();
                reader = commandselectdia2.ExecuteReader();
                reader.Read();
                idDiaEscolar = (int)reader["DiaEscolarId"];
            }
            catch (Exception exc)
            {
                LabelErr.Text = exc.Message + " - " + exc.Source;
            }
            finally
            {
                conn.Close();
            }

            //PARTE DOS EVENTOS
            string selectEventCommandString = "SELECT * FROM Evento WHERE DiaEscolar_DiaEscolarId = @diaId";
            SqlCeCommand selectEventCommand = new SqlCeCommand(selectEventCommandString, conn);
            selectEventCommand.Parameters.AddWithValue("@diaId", this.idDiaEscolar);
            SqlCeDataReader reader2;
            TableCell oitoManha = new TableCell();
            TableCell noveManha = new TableCell();
            TableCell dezManha = new TableCell();
            TableCell onzeManha = new TableCell();
            TableCell meioDia = new TableCell();
            TableCell umaTarde = new TableCell();
            TableCell duasTarde = new TableCell();
            TableCell tresTarde = new TableCell();
            TableCell quatroTarde = new TableCell();
            TableCell cincoTarde = new TableCell();
            TableCell seisTarde = new TableCell();
            TableCell seteTarde = new TableCell();
            try
            {
                conn.Open();
                reader2 = selectEventCommand.ExecuteReader();
                while (reader2.Read())
                {
                    int inicio = (int)reader2["HoraInicio"];
                    int fim = (int)reader2["HoraFim"];
                    string titulo = (string)reader2["NomeEvento"];
                    TableCell novaCell = new TableCell();
                    //inserir Hiperlinks para detalhes/Editar
                    switch (inicio)
                    {
                        case 8:
                            oitoManha.Controls.Add(new LiteralControl("Inicio: " + titulo + " | "));
                            break;
                        case 9:
                            noveManha.Controls.Add(new LiteralControl("Inicio: " + titulo + " | "));
                            break;
                        case 10:
                            dezManha.Controls.Add(new LiteralControl("Inicio: " + titulo + " | "));
                            break;
                        case 11:
                            onzeManha.Controls.Add(new LiteralControl("Inicio: " + titulo + " | "));
                            break;
                        case 12:
                            meioDia.Controls.Add(new LiteralControl("Inicio: " + titulo + " | "));
                            break;
                        case 13:
                            umaTarde.Controls.Add(new LiteralControl("Inicio: " + titulo + " | "));
                            break;
                        case 14:
                            duasTarde.Controls.Add(new LiteralControl("Inicio: " + titulo + " | "));
                            break;
                        case 15:
                            tresTarde.Controls.Add(new LiteralControl("Inicio: " + titulo + " | "));
                            break;
                        case 16:
                            quatroTarde.Controls.Add(new LiteralControl("Inicio: " + titulo + " | "));
                            break;
                        case 17:
                            cincoTarde.Controls.Add(new LiteralControl("Inicio: " + titulo + " | "));
                            break;
                        case 18:
                            seisTarde.Controls.Add(new LiteralControl("Inicio: " + titulo + " | "));
                            break;
                    }

                    switch (fim)
                    {
                        case 8:
                            oitoManha.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                        case 9:
                            noveManha.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                        case 10:
                            dezManha.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                        case 11:
                            onzeManha.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                        case 12:
                            meioDia.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                        case 13:
                            umaTarde.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                        case 14:
                            duasTarde.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                        case 15:
                            tresTarde.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                        case 16:
                            quatroTarde.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                        case 17:
                            cincoTarde.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                        case 18:
                            seisTarde.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                        case 19:
                            seteTarde.Controls.Add(new LiteralControl("Fim: " + titulo + " | "));
                            break;
                    }

                    TableCalendario.Rows[1].Cells.Add(oitoManha);
                    TableCalendario.Rows[2].Cells.Add(noveManha);
                    TableCalendario.Rows[3].Cells.Add(dezManha);
                    TableCalendario.Rows[4].Cells.Add(onzeManha);
                    TableCalendario.Rows[5].Cells.Add(meioDia);
                    TableCalendario.Rows[6].Cells.Add(umaTarde);
                    TableCalendario.Rows[7].Cells.Add(duasTarde);
                    TableCalendario.Rows[8].Cells.Add(tresTarde);
                    TableCalendario.Rows[9].Cells.Add(quatroTarde);
                    TableCalendario.Rows[10].Cells.Add(cincoTarde);
                    TableCalendario.Rows[11].Cells.Add(seisTarde);
                    TableCalendario.Rows[12].Cells.Add(seteTarde);
                }
            }
            catch (Exception)
            {

            }
            finally
            {
                conn.Close();
            }


            //PARTE DAS EMENTAS
            string selectEmentaSqlCmdString = @"SELECT * FROM DiaEscolar, Ementa, ListaPratos, Prato WHERE DiaEscolar.Ementa_EmentaId=Ementa.EmentaId AND Ementa.EmentaId=ListaPratos.Ementa_EmentaId AND Prato_PratoId=PratoId AND Dia=@dia";
            SqlCeCommand selectEmentaSqlCmd = new SqlCeCommand(selectEmentaSqlCmdString, conn);
            selectEmentaSqlCmd.Parameters.AddWithValue("@dia", dataEmQuestao);
            SqlCeDataReader readerEmentas;
            try
            {
                conn.Open();
                readerEmentas = selectEmentaSqlCmd.ExecuteReader();
                readerEmentas.Read();
                string sobremesa = (string)readerEmentas["Sobremesa"];
                string sopa = (string)readerEmentas["Sopa"];
                string prato1 = (string)readerEmentas["NomePrato"];
                readerEmentas.Read();
                string prato2 = (string)readerEmentas["NomePrato"];
                readerEmentas.Read();
                string prato3 = (string)readerEmentas["NomePrato"];
                readerEmentas.Read();
                string prato4 = (string)readerEmentas["NomePrato"];
                readerEmentas.Read();
                string prato5 = (string)readerEmentas["NomePrato"];
                TextBox1.Text = "Ementa\n" + "Sopa: " + System.Web.HttpUtility.HtmlDecode(sopa);
                TextBox1.Text += System.Web.HttpUtility.HtmlDecode("\nPrato1: " + prato1);
                TextBox1.Text += System.Web.HttpUtility.HtmlDecode("\nPrato2: " + prato2);
                TextBox1.Text += System.Web.HttpUtility.HtmlDecode("\nPrato3: " + prato3);
                TextBox1.Text += System.Web.HttpUtility.HtmlDecode("\nPrato4: " + prato4);
                TextBox1.Text += System.Web.HttpUtility.HtmlDecode("\nPrato5: " + prato5);
                TextBox1.Text += System.Web.HttpUtility.HtmlDecode("\nSobremesa: " + sobremesa);

            }
            catch (Exception)
            {
                this.TextBox1.Text = "Não existe ementa planeada para este dia!";
            }
            finally
            {
                conn.Close();
            }
              
        }

        public bool diaNovo { get; set; }
        public int idDiaEscolar { get; set; }
        public int idEmenta { get; set; }
        public DateTime dataEmQuestao { get; set; }

        protected void ButtonAddEvento_Click(object sender, EventArgs e)
        {
            Session["idDiaEscolar"] = idDiaEscolar;
            Session["dataDiaEscolar"] = dataEmQuestao;
            Response.Redirect("AdicionarEventoForm.aspx");
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Session["idDiaEscolar"] = idDiaEscolar;
            Response.Redirect("AdicionarEmentaADiaEscolar.aspx");
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            Session["DataDiaDiaEscolar"] = dataEmQuestao;
            Response.Redirect("~/Account/Ementa/VerEscolhasDePrato.aspx");
        }
        
    }

    
}